home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / Human.Int.Notes / HIN.006 < prev    next >
Encoding:
Text File  |  1990-02-21  |  13.4 KB  |  259 lines  |  [TEXT/pdos]

  1. Human Interface Notes
  2. _____________________________________________________________________________
  3.  
  4. Note #6    Window Positions
  5.     
  6.            Written by:  John Sullivan                            January 1990
  7. _____________________________________________________________________________
  8.  
  9. Whenever a window is displayed on the screen, the application must make a 
  10. decision about its size and location.  If a user moved the window in an 
  11. earlier session, then it should be restored to its previous position; 
  12. otherwise, the application must choose an appropriate default position.  
  13. This document gives details about making these decisions.
  14. _____________________________________________________________________________
  15.  
  16. Saving and restoring window positions
  17.  
  18. Users change the locations and sizes of windows for a reason. They might want 
  19. to view two documents side by side, or they might want to display a window 
  20. on a larger monitor so that more of it can be seen at once.  They might want
  21. to display only the interesting area of the window, which may be quite 
  22. small, or they might want to position the window in such a way that certain 
  23. icons on the desktop are still visible.  In any case, one of the most 
  24. important principles of a good interface is that the user is in control, 
  25. so applications must respect the user's reasoning by reopening each window 
  26. in the same location and with the same size that the user left it.
  27.  
  28. Here is a simple, but effective, procedure for saving and restoring window 
  29. positions:
  30.  
  31.   1.  When opening a new window, put it in the default 
  32.       position (see the next section of this document for 
  33.       details about determining the default position).
  34.  
  35.   2.  Before closing a movable window, check to see if 
  36.       its location or size have changed.  If so, save the 
  37.       new location and size.  If the window can be 
  38.       zoomed, save the user state and also save whether 
  39.       or not the window is in the zoomed (standard) 
  40.       state.  Note that if the window corresponds to a 
  41.       Finder document and there were no other changes to 
  42.       the document, the new location and size should be 
  43.       saved without changing the modification date of the 
  44.       document.
  45.  
  46.          Note:  If the location and size of a 
  47.          movable window have not changed, do not 
  48.          save them, because the default location 
  49.          and size may be different the next time 
  50.          the window is opened (e.g., if the window 
  51.          is reopened on a different Macintosh with 
  52.          a different screen size).
  53.  
  54.   3.  When reopening a movable window, check its saved 
  55.       position.  If the window is in a position to which 
  56.       the user could have dragged it, then leave it 
  57.       there.  If the window can be zoomed and was in the 
  58.       zoomed state when it was last closed, put it in the        
  59.       zoomed state again.  (Note that the current and 
  60.       previous zoomed states are not necessarily the 
  61.       same, since the window may be reopened on a 
  62.       different monitor.)  If the window is not in a 
  63.       position to which the user could have dragged it, 
  64.       then it must be relocated, so use the default
  65.       location.  However, do not automatically use the 
  66.       default size when using the default location; if 
  67.       the entire window would be visible using the 
  68.       default location and the stored size, then use the 
  69.       stored size.
  70.  
  71. Remember that checking to see if the saved position is reasonable before 
  72. reopening the window is a necessary part of this procedure, not an option.  
  73. When an application opens windows outside of the visible space, users tend 
  74. to switch to competitors' products.
  75.  
  76.  
  77. Choosing a default window position
  78.  
  79. The appropriate default position of a window may depend upon several 
  80. factors, including whether the window is a document window or an alert, 
  81. the locations of other open windows, the user's center of attention, and 
  82. whether or not the window contains information that is closely related to 
  83. other open windows.  The rest of this document includes a series of 
  84. default window position examples for several common cases. Developers should 
  85. consider how their particular situations relate to these common ones to 
  86. determine the best default positioning. In any case, the default position of 
  87. any window must never overlap multiple screens, as this can look and 
  88. feel very strange with monitors of different depth and resolution.
  89.  
  90. Independent document windows, single screen
  91.  
  92. On a single screen the first document window should be positioned in the 
  93. upper-left region of the gray area of the screen.  Each additional window 
  94. should be staggered slightly below and to the right of its predecessor, if 
  95. no windows are moved or closed.  When a window is moved or closed, its 
  96. original position becomes available again.  The next window opened should 
  97. use this position.  Similarly, if a window is moved onto a previously-
  98. available position, that position becomes unavailable again.  
  99. Figure 1 illustrates independent document windows on a single screen.
  100.                    _________________________________
  101.                   ||-------------------------------||
  102.                   ||@ File  Edit  Window           ||
  103.                   ||-------------------------------||
  104.                   ||###__________________##########||
  105.                   ||##|-----Addendum-----|#########||
  106.                   ||##|==================|#########||
  107.                   ||####___________________########||
  108.                   ||####|-----Addendum-----|#######||
  109.                   ||####|==================|#######||
  110.                   ||######__________________#######||
  111.                   ||######|-----Addendum-----|#####||
  112.                   ||######|==================|#####||
  113.                   ||######|\\\\\\\\\\\\\\\\|+|#####||
  114.                   ||######|\\\\\\\\\\\\\\\\|-|#####||
  115.                   ||######|\\\\\\\\\\\\\\\\| |#####||
  116.                   ||######|\\\\\\\\\\\\\\\\| |#####||
  117.                   ||######|\\\\\\\\\\\\\\\\|_|#####||
  118.                   ||######|\\\\\\\\\\\\\\\\|-|#####||
  119.                   ||######|+|//////////////|-|#####||
  120.                   ||######|------------------|#####||
  121.                   ||===============================||
  122.                      
  123.              Figure 1-Independent document window positions
  124.  
  125. Independent document windows, multiple screens
  126.  
  127. The first document window should be positioned in the upper-
  128. left region of the gray area of the main screen (the screen 
  129. with the menu bar).  Each additional independent window 
  130. should be staggered from the upper-left of the screen that 
  131. contains the largest portion of the frontmost window.  Thus, 
  132. if the user starts the application, creates a single window, 
  133. drags that window over to a secondary monitor, and then 
  134. creates a second window, the second window and subsequent 
  135. windows should appear on the secondary monitor.  Figure 2 
  136. illustrates independent document windows on multiple screens.
  137.                             _________________________________
  138.                            ||-------------------------------||
  139.                            ||@ File  Edit  Window           ||
  140.                            ||-------------------------------||
  141.                            ||######__________________#######||
  142.                            ||######|-----Addendum-----|#####||
  143.                            ||######|==================|#####||
  144.                            ||######|\\\\\\\\\\\\\\\\|+|#####||
  145.                            ||######|\\\\\\\\\\\\\\\\| |#####||
  146.    ________________________||######|\\\\\\\\\\\\\\\\| |#####||
  147.   ||----------------------|||######|\\\\\\\\\\\\\\\\| |#####||
  148.   ||@ File  Edit  Window  |||######|\\\\\\\\\\\\\\\\| |#####||
  149.   ||----------------------|||######|\\\\\\\\\\\\\\\\| |#####||
  150.   ||############__________|||______|\\\\\\\\\\\\\\\\| |#####||
  151.   ||############|_________|||______|\\\\\\\\\\\\\\\\| |#####||
  152.   ||############|\\\\\\\\\|||\\\\\\|\\\\\\\\\\\\\\\\| |#####||
  153.   ||############|\\\\\\\\\|||\\\\\\|\\\\\\\\\\\\\\\\| |#####||
  154.   ||############|\\\\\\\\\|||\\\\\\|\\\\\\\\\\\\\\\\|_|#####||
  155.   ||############|\\\\\\\\\|||\\\\\\|\\\\\\\\\\\\\\\\|-|#####||
  156.   ||############|\\\\\\\\\|||\\\\\\|+|//////////////|-|#####||
  157.   ||############|\\\\\\\\\|||\\\\\\|------------------|#####||
  158.   ||======================|||===============================||
  159.                                                               
  160. Figure 2-Independent document window positions on multiple screens
  161.  
  162. Child windows
  163.  
  164. A child window is a window that contains more detail about part of 
  165. another window.  For instance, in ResEdit a window showing all string 
  166. resources of a given file is a child of the window showing all resource 
  167. types for that file.  Child windows of visible parent windows should be 
  168. created just below and to the right of the parent window.  Figure 3 
  169. illustrates child windows.
  170.                    _________________________________
  171.                   ||-------------------------------||
  172.                   ||@ File  Edit  Window           ||
  173.                   ||-------------------------------||
  174.                   ||###__________________##########||
  175.                   ||##|-----Resources----|#########||
  176.                   ||##|==================|#########||
  177.                   ||####___________________########||
  178.                   ||####|-----Directory----|#######||
  179.                   ||####|==================|#######||
  180.                   ||######___________________######||
  181.                   ||######|------Index-------|#####||
  182.                   ||######|==================|#####||
  183.                   ||######|\\\\\\\\\\\\\\\\|+|#####||
  184.                   ||######|\\\\\\\\\\\\\\\\|-|#####||
  185.                   ||######|\\\\\\\\\\\\\\\\| |#####||
  186.                   ||######|\\\\\\\\\\\\\\\\| |#####||
  187.                   ||######|\\\\\\\\\\\\\\\\| |#####||
  188.                   ||######|\\\\\\\\\\\\\\\\|-|#####||
  189.                   ||######|+|//////////////|-|#####||
  190.                   ||######|------------------|#####||
  191.                   ||===============================||
  192.  
  193.                        Figure 3 - Child Windows
  194.  
  195. Alert or dialog box, single screen
  196.  
  197. Alerts or dialog boxes should be centered horizontally and positioned 
  198. vertically such that one-third of the remaining vertical gray screen 
  199. space is above the window and the other two-thirds are below.  
  200. Figure 4 shows a typical alert.
  201.                    _____________________________________
  202.                   ||-----------------------------------||
  203.                   ||@ File  Edit  Window               ||
  204.                   ||-----------------------------------||
  205.                   ||###################################||
  206.                   ||###################################||
  207.                   ||###################################||
  208.                   ||####_______________________########||
  209.                   ||####|======================|#######||
  210.                   ||####|This application only |#######||
  211.                   ||####|runs in 64-bit color  |#######||
  212.                   ||####|          __________  |#######||
  213.                   ||####|         /    OK    \ |#######||
  214.                   ||####|         \__________/ |#######||
  215.                   ||####|______________________|#######||
  216.                   ||###################################||
  217.                   ||###################################||
  218.                   ||-----------------------------------||
  219.                   
  220.                            Figure 4 - Alert
  221.  
  222. Alert or dialog box, multiple screens
  223.  
  224. This case is similar to the previous one, except that the alert or 
  225. dialog box should be drawn on the screen closest to the user's center 
  226. of attention.  Always putting an alert or dialog box on the screen 
  227. containing the cursor is a good rule of thumb.  An even better rule is 
  228. to use the screen on which the last user action took place.  For instance, 
  229. if the user is typing into a word processing document and presses 
  230. Command-O, put the standard file dialog box on the same screen as the 
  231. word processing document.  When an alert or dialog box appears in response 
  232. to the user selecting a menu item with the mouse, put the alert or dialog
  233. box on the screen with the menu bar.  Figure 5 shows an alert in a two-
  234. screen configuration.
  235.                                ________________________________
  236.                               ||------------------------------||
  237.                               ||@ File  Edit  Window          ||
  238.                               ||------------------------------||
  239.                               ||#####__________________#######||
  240.                               ||#####|-----Addendum----|######||
  241.                               ||#####|=================|######||
  242.                               ||#####|\\\\\\\\\\\\\\\|+|######||
  243.                               ||##________________________####||
  244.       ________________________||##|----------------------|####||
  245.      ||----------------------|||##| Your computer just   |####||
  246.      ||@ File  Edit  Window  |||##| exploded.  Please    |####||
  247.      ||----------------------|||##| run for cover.       |####||
  248.      ||######################|||##|             ======   |####||
  249.      ||######################|||##|           //  OK  \\ |####||
  250.      ||######################|||##|           \\      // |####||
  251.      ||######################|||##|             ======   |####||
  252.      ||######################|||##|----------------------|####||
  253.      ||######################|||####|\\\\\\\\\\\\\\\\\\|######||
  254.      ||######################|||####|\\\\\\\\\\\\\\\\\\|######||
  255.      ||######################|||##############################||
  256.      ||======================|||==============================||
  257.      
  258.                   Figure 5 - Alert on multiple screens
  259.